package com.jd.fruit.controller.admin.auth;

import java.io.IOException;
import java.util.List;

import com.alibaba.fastjson.JSONArray;
import com.jd.fruit.common.annotation.Controller;
import com.jd.fruit.common.controller.BaseController;
import com.jd.fruit.common.util.DictUtil;
import com.jd.fruit.common.util.StringUtil;
import com.jd.fruit.model.admin.auth.Menu;
import com.jfinal.kit.StrKit;

/**
 * 菜单管理
 * 
 * @author lishunfeng
 * 
 */
@Controller("/admin/auth/menu")
public class MenuController extends BaseController {
	/**
	 * 添加菜单
	 */
	public void add() {
		this.getRequest().setAttribute("oprtype", DictUtil.oprSave);
		render("menu_add.html");
	}

	/**
	 *菜单数据列表
	 */
	public void list() {
		Menu menu = Menu.dao;
		List<Menu> list = menu.list();
		this.getRequest().setAttribute("list", list);
		render("menu_list.html");
	}

	/**
	 * 编辑菜单
	 */
	public void detail() {
		String id = StringUtil.getDcodePara(getRequest(), "id");
		Menu menu = Menu.dao.findById(id);
		String parentId = menu.get("parent_id");
		if (StrKit.notBlank(parentId)) {
			String parentName = menu.dao.findById(parentId).get("name");
			getRequest().setAttribute("parentName", parentName);
		}
		this.getRequest().setAttribute("menu", menu);
		this.getRequest().setAttribute("oprtype", DictUtil.oprUpdate);
		render("menu_add.html");// 这个是页面的命名规范
	}

	/**
	 * 删除菜单
	 * 
	 * @throws IOException
	 */
	public void delete() throws IOException {
		String id = StringUtil.getDcodePara(getRequest(), "id");
		boolean isOk = Menu.dao.deleteById(id);
		if (isOk) {// 删除成功
			this.renderText(DictUtil.success);
		} else { // 删除失败
			this.renderText(DictUtil.failed);
		}
	}

	/**
	 *保存菜单
	 */
	public void save() {
		Menu menu = getModel(Menu.class);
		String oprtyp = this.getPara("oprtype");
		if (oprtyp.equals(DictUtil.oprSave)) {
			Menu.dao.save(menu);
		} else {
			menu.update();
		}
		this.redirect("/admin/auth/menu/list");
	}

	/**
	 * 加载菜单Jason数据
	 * 
	 * @throws IOException
	 */
	public void loadMenuData() {
		String type = getPara("type");
		String result = "";
		JSONArray jsarray = null;
		if (!StrKit.isBlank(type) && type.equals(DictUtil.menu)) {
			String loginUserId=this.getSessionAttr("loginUserId");
			result = Menu.dao.loadMenu(loginUserId);
		}else if (!StrKit.isBlank(type) && type.equals(DictUtil.jsontree)) {
			String rolemap="";
			jsarray = Menu.dao.loadTree(rolemap);
			if (jsarray != null) {
				result = jsarray.toJSONString();
			}
		} else {
			result = Menu.dao.loadTreeGrid();
		}
		renderJson(result);
	}
	


}
